[fix](regression) Deflake segcompaction agg keys case#65382
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
/review |
There was a problem hiding this comment.
Review result: Request changes.
Critical checkpoints:
- Goal and test coverage: the PR intends to deflake
test_segcompaction_agg_keys, but the new assertion no longer proves the full aggregate-keyREPLACEwinner row; see the inline comment. - Scope: the change is focused to one regression test file. No production code, config, session propagation, persistence, or compatibility change is present.
- Parallel paths: sibling segcompaction outputs expose the complete duplicate source rows, so the test can preserve row-level coverage without pinning one deterministic winner.
- Concurrency, lifecycle, data writes, and observability: not applicable to this test-only assertion change.
- Validation: static review only in this runner.
.worktree_initialized,thirdparty/installed, andthirdparty/installed/bin/protocare absent, so I did not run the regression suite locally.
User focus: no additional user-provided review focus was supplied.
Subagent conclusions:
optimizer-rewrite: no new valuable findings; the optimizer/rewrite concern was dismissed as not applicable to this one-file test assertion change.tests-session-config:TSC-001was accepted asMAIN-001and submitted inline.- Convergence: round 1 ended with both live subagents replying
NO_NEW_VALUABLE_FINDINGSfor the same final ledger/comment set.
| assertEquals(50, result[0].size()) | ||
| assertEquals("47", result[0][0].toString()) | ||
|
|
||
| def validValues = [ |
There was a problem hiding this comment.
This is too weak for the regression: after this change any row whose 49 value cells are fruit names passes, even if the row is assembled from different duplicate rows or the wrong source columns. The same data set already exposes the 12 complete col_0=47 source rows in test_segcompaction_dup_keys.out, and the aggregate-key REPLACE result should be one complete winner row, not just 49 independently valid vocabulary entries. To keep the deflake while preserving coverage, please compare result[0] against the set of complete allowed source rows instead of checking each cell against validValues.
|
/review |
|
run buildall |
|
Codex automated review failed and did not complete. Error: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at 11:47 AM. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
|
/review |
|
Codex automated review failed and did not complete. Error: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at 11:47 AM. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
|
/review |
There was a problem hiding this comment.
Automated review summary for PR 65382 at head 08a4c4b.
I reviewed the changed regression test and found no new issue requiring an inline comment. The earlier inline thread about the fruit-domain-only assertion is addressed in the current head: the test now loads the 12 complete col_0=47 rows from test_segcompaction_dup_keys.out and requires the aggregate-key result row to match one complete source row.
Critical checkpoint conclusions:
- Goal and tests: the change keeps the deflake goal while preserving row-level
REPLACEcoverage for the duplicate key case. - Scope: the PR is narrowly scoped to
regression-test/suites/segcompaction_p2/test_segcompaction_agg_keys.groovy. - Concurrency, lifecycle, configuration, compatibility, transactions, persistence, and observability: not applicable for this test-only assertion change.
- Parallel paths: the duplicate-key fixture used as the source-row oracle matches the same ORC input shape and contains the 12 expected
col_0=47rows. - Regression standards: no generated
.outupdate is needed because this suite uses explicit assertions for the nondeterministic winner row;git diff --checkis clean. - Validation: static review plus GitHub PR metadata; I did not run the S3 regression locally in this uninitialized shallow runner checkout.
User focus: no additional user-provided review focus was supplied.
Subagent conclusions: optimizer-rewrite and tests-session-config both found no new valuable candidates. Convergence round 1 ended with both subagents replying NO_NEW_VALUABLE_FINDINGS for the same ledger and empty inline-comment set.
|
run buildall |
|
/review |
There was a problem hiding this comment.
Automated review summary for PR 65382 at head 08a4c4b.
I reviewed the changed regression test and found no new issue requiring an inline comment. The earlier inline thread about the weak fruit-domain-only assertion is addressed in the current head: the test now loads the 12 complete col_0=47 rows from test_segcompaction_dup_keys.out and requires the aggregate-key result row to match one complete source row.
Critical checkpoint conclusions:
- Goal and tests: the change keeps the deflake goal while preserving row-level
REPLACEcoverage for the duplicate-key case. - Scope: the PR is narrowly scoped to
regression-test/suites/segcompaction_p2/test_segcompaction_agg_keys.groovy. - Concurrency, lifecycle, configuration, compatibility, transactions, persistence, and observability: not applicable for this test-only assertion change.
- Parallel paths: the duplicate-key fixture used as the source-row oracle matches the same ORC input shape and contains the 12 expected
col_0=47rows. - Regression standards: no generated
.outupdate is needed because this suite uses explicit assertions for the nondeterministic winner row;git diff --checkis clean. - Validation: static review plus GitHub PR metadata; I did not run the S3 regression locally in this uninitialized shallow runner checkout.
User focus: no additional user-provided review focus was supplied.
Subagent conclusions: optimizer-rewrite and tests-session-config both found no new valuable candidates in their focused passes. Convergence round 1 ended with both subagents replying NO_NEW_VALUABLE_FINDINGS for the same ledger and empty inline-comment set after the final main-owned duplicate/resolution update.
Proposed changes
Follow up the existing
test_segcompaction_agg_keysdeflake from #61026.The current master case already avoids the old golden file by allowing two concrete full-row results for
col_0=47. This patch keeps the same intent but removes the hard-coded full-row candidates. The case now checks stable invariants instead:col_0=47returns exactly one aggregate row.47.REPLACEvalue columns belong to the known fruit value domain in the ORC input.This avoids pinning the test to a specific duplicate-key
REPLACEwinner while still checking that the load and aggregation returned a valid row.Why
The ORC input contains multiple rows with
col_0=47. WithAGGREGATE KEY(col_0)andREPLACEvalue columns, the case should not require one specific source row to win unless the data/model makes that winner deterministic.Validation
Remote branch-4.1 regression environment:
Result: